package com.siqi.hr.system.custom.dao.intf;

import com.siqi.hr.system.custom.entity.SelectBox;

import java.util.List;
import java.util.Map;

/**
 * 数据字典dao接口层
 * @author    xiaogq
 * Created by xiaogoingqin on 2016/7/24.
 */
public interface SelectBoxDao {

    /**
     * 根据字段id查询单选、下拉、下拉多选类型字段所有枚举值信息
     * @author             xiaogq
     * @param fieldId     注册字段id
     */
    public List<Map<String, Object>> getSelectBoxsData(Integer fieldId);

    /**
     * 添加单选、下拉、下拉多选类型的字段时添加枚举值方法
     * @author             xiaogq
     * @param selectBox
     */
    public int addSelectBox(SelectBox selectBox);

    /**
     * 根据枚举值id获取枚举对象信息
     * @author             xiaogq
     * @param    selectBoxId     枚举值id
     * @return   SelectBox
     */
    public SelectBox getSelectBox(int selectBoxId);

    /**
     * 编辑枚举型字段
     * @author               xiaogq
     * @param selectBox    枚举值对象信息
     */
    public int updateSelectBox(SelectBox selectBox);

    /**
     * 根据字段id查询所有的枚举字段
     * @author    xiaogq
     * @param     fieldId    字段id
     * @param     ids         枚举值id字符串
     */
    public List<SelectBox> getAllSelectBoxByFieldId(int fieldId,String ids);

    /**
     * 修改枚举排序方法
     * @author             xiaogq
     * @param sortIds    所有排序枚举值id字符串
     * @return            JSONObject
     */
    public int selectBoxSortUpdate(String sortIds);

    /**
     * 根据枚举值id删除枚举信息
     * @author               xiaogq
     * @param selectBoxId   枚举值id
     */
    public void deleteSelectBox(Integer selectBoxId);

    /**
     * 根据实体id、下拉多选类型字段名称查询其枚举值
     * @author         xiaogq
     * @param ids     所有枚举值id字符串
     * @return
     */
    public List<SelectBox> getSelectBoxsNameByIds(String ids);

    /**
     * 处理详情页数据特殊字段值的数据
     * @author               xiaogq
     * @param datasMap   枚举值id
     * @param id          记录id
     */
    public  Map<String, Object> extractViewDataValus(Map<String,Object> datasMap,String id);

    /**
     * 通过实体id查询select
     * @author ChenL
     */
    public List<Map<String,Object>> getByEntityId(int entityId);

}
